1. Field
The embodiments relate to managed runtime computer system environment technology, and more particularly to dynamic optimization through phase detection.
2. Description of the Related Art
Computer programs that are designed to run on managed runtime environments (MRTEs) are distributed in a neutral bytecode format and must be compiled to native machine code by a dynamic compiler. The performance of managed applications depends on the quality of optimization and code generation performed by a compiler. System utilization monitoring can be used to determine when various applications may need to be optimized. As the number of applications running on a system increases, the need for application optimization increases as well.
Many microprocessor architectures rely on compiler optimizations for performance. Some architectures rely heavily on expensive and sophisticated code-generation optimizations (such as global scheduling and control speculation) for performance.
In order to optimize executable code, performance feedback and optimization techniques are used. The problem with these techniques is that they are usually intended for hardware implementations or are ad hoc, and thus not suitable for dynamic optimization or software implementations. Moreover, many optimizations require a wait-and-see approach as different optimization criteria are experimented with to achieve optimization. This can be time consuming and may only optimize an application for a short time due to system usage change.